package mysql.v1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 一、使用JDBC 链接 数据库MySQL
 * 1.maven仓库下载对应mysql版本的jar包
 * 2.mysql服务器必须启动【WampServer集成】
 * 3.加载数据库驱动【MySQL】
 * 4.获取数据库连接【MySQL-用户名 root 最高权限 密码 空】
 *二、链接成功
 * 1.test 库 创建表 person 给3个字段 id、name、address
 *2.静态sql增加
 */
public class MysqlJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //3.加载驱动【注册驱动程序】
        //JDBC 规范标准 要求：链接对应数据库必须注册‘驱动程序’
        //告诉JDBC 现在链接什么种类的数据库
        //Class.forName()通过反射加载对应数据库版本驱动类
        //对应数据库固定注册写法：MySQl
        Class.forName("com.mysql.jdbc.Driver");
        //4.获取mysql数据库的链接
        String username="root";   //mysql数据库用户名
        String password="";       //mysql数据库密码
        //url链接地址：MySQL
        //jdbc：mysql：//ip地址：端口号/库名?characterEncoding=UTF-8
        String url="jdbc:mysql://localhost:3308/test?characterEncoding=UTF-8";
        //DriverManager工具类，功能获取数据库链接url 用户名和密码
        //getConnection方法，链接不同版本数据库的方法,连接成功，返回Connection
        Connection conn= DriverManager.getConnection(url,username,password);
        System.out.println("测试链接是否成功"+conn);

        //5.编写静态添加sql操作【字符串】
        //String sql="insert into person values(1,'王市委','黑龙江辽宁省')";
        //String sql="delete from person where id=1";
        String sql="update person set name='琳琳' where id=1";

        //6.执行静态sql【增加操作】
        //coon.createStatement()执行数据库中增删改查操作，返回Statement对象
        //Statement对象执行静态sql
        //6.1具备增删改
        Statement st= conn.createStatement();
        //6.2执行静态sql
       int rows=  st.executeUpdate(sql);
        System.out.println("增加"+rows+"记录");
        //7.关闭资源
        st.close();
        conn.close();


    }
}
/**
 * 昨天重点
 * 1.JDBC规范 链接各种数据库 数据库闭源
 * 2.maven仓库下载对应jar包
 *   mysql版本5.5  MySQLjdbc
 *   oracle版本 ojdbc8
 * 3.编程步骤--JDBC规范
 * 3.1加载驱动，jdbc链接数据库，每个数据库都有自己的驱动
 * Class.forName("com.mysql.jdbc.Driver") 反射技术【固定结构】
 * mysql版本5，X  驱动：com.mysql.jdbc.Driver
 * mysql版本8. X  驱动：com.mysql.cj.jdbc.Driver
 * java-->JDBC标准规范-->Driver 接口:驱动接口，各种数据库
 * JDBC承认写对应驱动接口【所有数据库承认你接口，确定什么数据库】
 * 3.2获取链接，MySQL数据库:用户名、密码、url用字符串接收
 *  String username="root";   --Java写法
 *  String password="";
 *  url--->mysql链接路径---固定结构
 * jdbc：mysql：//localhost：3308/mi?characterEncoding=UTF-8
 * 协议:子协议://ip地址：端口号/库名?设置字符集
 *             本机
 *             127.0.0.1
 *       Java获取链接---通过DriverManager接口：工具类，可以连接各种数据库
 *      Connection con=DriverManager.getConnection(url,username,password);
 *       具体链接方案给方法：getConnection()地址、用户名、密码确定无误
 *       返回一个对象 Connection对象【Java与对应数据库连接成功】
 *       打印Connection--打印对象--连接成功
 * 4.执行：JDBC只能做CRUD增删改查--Mysql创建表、库
 * 4.1Mysql --->使用库 --->创建表
 * 4.2Java  --->CUD增改删
 * 4.3Java  --->确定数据库连接成功【con】 ---> 调取执行增删改查操作
 *          --->返回Statement对象：执行静态sql
 *   代码：Statement st= conn.createStatement();
 * 4.4Java  --->Statement对象提供方法：executeUpdate();
 *          --->此方法执行sql：增、删、改操作---成功 几 条
 *   代码：int rows=st.executeUpdate(sql);
 *   打桩：打印成功多少条记录
 * 5.关闭资源【倒置法：Statement-执行sql对象、Connection--链接数据库成功对象】
 */